#ifndef ____SSBASEL__SSCVT__CVT__H__
#define ____SSBASEL__SSCVT__CVT__H__
/*!
* \file cvt.h
* \brief
* 
*
* 
* \author patdz@qq.com
* \version 1.0
* \date 2014/05/26
*/

#include "ssbase/base_export.h"

#ifdef FORCELIB
#define SSCVT_API
#define SSCVT_CLASS
#else
#ifdef SSCVT_EXPORTS
#define SSCVT_API _declspec(dllexport)
#define SSCVT_CLASS _declspec(dllexport)
#else
#define SSCVT_API _declspec(dllimport)
#define SSCVT_CLASS _declspec(dllimport)
#endif
#endif

_SSL_BEGIN
_SSBASEL_BEGIN

SSCVT_API bool cvt_a2w_s(const char *src, wchar_t *dst, unsigned int destsize);
SSCVT_API wchar_t* cvt_a2w(const char *str);

SSCVT_API bool cvt_w2a_s(const wchar_t *src, char *dst, unsigned int destsize);
SSCVT_API char* cvt_w2a(const wchar_t *str);

SSCVT_API bool cvt_ue2w_s(const char *src, wchar_t *dst, unsigned int destsize);
SSCVT_API wchar_t* cvt_ue2w(const char *str);

SSCVT_API bool cvt_w2ue_s(const wchar_t *src, char *dst, unsigned int destsize);
SSCVT_API char* cvt_w2ue(const wchar_t *str);

SSCVT_API bool cvt_ue2a_s(const char *src, char *dst, unsigned int destsize);
SSCVT_API char* cvt_ue2a(const char *str);

SSCVT_API bool cvt_a2ue_s(const char *src, char *dst, unsigned int destsize);
SSCVT_API char* cvt_a2ue(const char *str);

SSCVT_API wchar_t* cvt_w2w(const wchar_t *str);
SSCVT_API char* cvt_a2a(const char *str);
SSCVT_API char* cvt_ue2ue(const char *str);

SSCVT_API void cvt_free(void *p);

SSCVT_API bool cvt_checkutf8(const char *str);

_SSBASEL_END
_SSL_END

#endif
